Revert "gdk-win32: Clean Up A Bit"
authorChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 17 Apr 2015 03:29:07 +0000 (11:29 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Fri, 17 Apr 2015 03:29:07 +0000 (11:29 +0800)
This reverts commit 24d3f3fcb2894df110a17317260b8705d68d22ec.

Sorry, I am going to re-commit this very shortly with a new
commit message, as I found the commit message to be quite
wrong and misleading.

gdk/win32/gdkcursor-win32.c
gdk/win32/gdkwindow-win32.c

index eb4a4542286a335425795c54301d076c104e0e30..28b274526629051a4a7561aee07ceee5888db0e2 100644 (file)
@@ -821,7 +821,22 @@ _gdk_win32_pixbuf_to_hcursor (GdkPixbuf *pixbuf,
 gboolean
 _gdk_win32_pixbuf_to_hicon_supports_alpha (void)
 {
-  return TRUE;
+  static gboolean is_win_xp=FALSE, is_win_xp_checked=FALSE;
+
+  if (!is_win_xp_checked)
+    {
+      OSVERSIONINFO version;
+
+      is_win_xp_checked = TRUE;
+
+      memset (&version, 0, sizeof (version));
+      version.dwOSVersionInfoSize = sizeof (version);
+      is_win_xp = GetVersionEx (&version)
+       && version.dwPlatformId == VER_PLATFORM_WIN32_NT
+       && (version.dwMajorVersion > 5
+           || (version.dwMajorVersion == 5 && version.dwMinorVersion >= 1));
+    }
+  return is_win_xp;
 }
 
 HICON
index da85ded5e23592e2d61f5c27ab000e0f5b7c5aac..3e568a4a998c0e0ff21c7337b5641ce5d0ff3947 100644 (file)
@@ -375,8 +375,12 @@ RegisterGdkClass (GdkWindowType wtype, GdkWindowTypeHint wtype_hint)
             {
               wcl.lpszClassName = L"gdkWindowTempShadow";
               wcl.style |= CS_SAVEBITS;
-              wcl.style |= 0x00020000; /* CS_DROPSHADOW */
-
+              if (LOBYTE (g_win32_get_windows_version()) > 0x05 ||
+                 LOWORD (g_win32_get_windows_version()) == 0x0105)
+               {
+                 /* Windows XP (5.1) or above */
+                 wcl.style |= 0x00020000; /* CS_DROPSHADOW */
+               }
               ONCE_PER_CLASS ();
               klassTEMPSHADOW = RegisterClassExW (&wcl);
             }